package com.rentong.cust.mapper;

import java.util.List;

import com.rentong.cust.domain.CustJiesuan;
import com.rentong.cust.domain.CustJiesuanList;
import com.rentong.cust.domain.CustJiesuanVo;
import com.rentong.cust.vo.CustJiesuanRequest;
import org.apache.ibatis.annotations.Param;

/**
 * 结算单Mapper接口
 *
 * @author ruoyi
 * @date 2025-01-02
 */
public interface CustJiesuanListMapper {
    /**
     * 查询结算单
     */
    public CustJiesuanVo selectCustJiesuanListByJiesuanListId(@Param("jiesuanId") Long jiesuanId);

    /**
     * 查询结算单列表
     *
     * @param custJiesuanList 结算单
     * @return 结算单集合
     */
    public List<CustJiesuanList> selectCustJiesuanListList(CustJiesuanList custJiesuanList);

    /**
     * 新增结算单
     *
     * @param custJiesuanList 结算单
     * @return 结果
     */
    public int insertCustJiesuanList(CustJiesuanList custJiesuanList);

    /**
     * 修改结算单
     *
     * @param custJiesuanList 结算单
     * @return 结果
     */
    public int updateCustJiesuanList(CustJiesuanList custJiesuanList);

    /**
     * 删除结算单
     *
     * @param jiesuanListId 结算单主键
     * @return 结果
     */
    public int deleteCustJiesuanListByJiesuanListId(Long jiesuanListId);

    /**
     * 批量删除结算单
     *
     * @param jiesuanListIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCustJiesuanListByJiesuanListIds(Long[] jiesuanListIds);


    List<CustJiesuanVo> selectCustJiesuanWithDetails(@Param("custJiesuanRequest") CustJiesuanRequest custJiesuanRequest);

    List<CustJiesuanVo> selectCustJiesuanWithDetailsByConfirm(@Param("custJiesuanRequest") CustJiesuanRequest custJiesuanRequest);
}
